package com.hllxd.hism.star.basic.service.service;


import com.hllxd.hism.star.basic.service.model.RoleInfo;

import java.util.List;

public interface RoleService {

    /**
     * 查询所有权限列表
     * @param search 权限标签
     * @return 权限列表
     */
    List<RoleInfo> listRole(String search);

    /**
     * 查询指定功能label下的所有用户/用户组，进行管理
     * @param functionLabel 功能唯一标识
     * @return 功能所分配的用户/用户组
     */
    List<RoleInfo> listRoleByLabel(String functionLabel);

    List<RoleInfo> listRoleByUserGroupId(String userId, Long userGroupId);


    Long delPermissionRole(Long id);

    long setRoleInfo(RoleInfo aa);

    RoleInfo getRoleInfo(Long id);

    long delRoleInfo(Long id);

    long updateRoleUserGroupIdCache(Long userGroupId, String originUgUserName, String updateUgUserName);

    Long delRoleRoleUserGroupIdMysql(Long userGroupId);


    /**
     * 刷新权限
     * @return SUCCESS 刷新成功 FAILURE 刷新失败
     */
    String refreshPermission();

    /**
     * 权限校验
     * @param userName 用户名OA
     * @param permissionUri 当前URI
     * @return 是否有权限 true-有权限 false-无权限
     */
    Boolean validate(String userName, String permissionUri);
}
